package com.lz.d;

/**
 * @ClassName Demo32
 * @Description 求1000以内的完数
 * @Author 2214361854
 * @Date 2022/5/27 16:27
 * @Version 1.0
 */
public class Demo32 {
    /**
     * 完数:如果一个数等于其所有因子之和,我们就称这个数为"完数",
     * 比如6的因子为1,2,3 6 = 1 + 2 + 3,那么6就是一个完数
     */
    public static void main(String[] args) {
        System.out.println("1000以内的完数如下：");
        fun();
    }

    private static void fun() {
        for (int i = 1; i <= 1000; i++) {
            //因子
            int factor = 0;
            for (int j = 1; j < (i >> 1) + 1; j++) {
                if (i % j == 0) {
                    factor += j;
                }
            }
            if (factor == i) {
                System.out.println(i + " ");
            }
        }
    }
}